package com.flying.invest.account.model;

import java.util.Date;

import com.flying.framework.data.Data;
import com.flying.common.util.Codes;
import com.flying.framework.annotation.Param;
import com.flying.framework.data.DataSerializable;
import com.flying.framework.metadata.Meta;

@SuppressWarnings("serial")
@Meta(id="i_account_flow",title="账户流水", table="i_account_flow", primaryKeys={"flow_id"})
public class AccountFlow extends Data implements DataSerializable {
	public final static String ENTITY_NAME = "i_account_flow";
	
	public final static String FLOW_ID = "flow_id";
	public final static String USER_ID = "user_id";
	public final static String ACCOUNT_ID = "account_id";
	public final static String AMOUNT = "amount";
	public final static String TRANSACTION_TYPE = "transaction_type";
	public final static String TRANSACTION_TIME = "transaction_time";
	public final static String REMARKS = "remarks";
	public final static String TRANSACTION_ID = "transaction_id";
	public final static String CREATE_TIME = "create_time";
	
	
	@Param(value=FLOW_ID,   required=true,   maxlength=0,	desc="FLOW ID" , generator=Codes.AUTO_INCREMENT)
	private Long flowId;
	
	@Param(value=USER_ID,   required=true,   maxlength=0,	desc="所属用户" )
	private Long userId;
	
	@Param(value=ACCOUNT_ID,   required=true,   maxlength=0,	desc="账户ID" )
	private Long accountId;
	
	@Param(value=AMOUNT,   required=true,   maxlength=0,	desc="发生金额" )
	private Double amount;
	
	@Param(value=TRANSACTION_TYPE,   required=true,   maxlength=0,	desc="交易类型（1：转入；-1：转出）" )
	private Integer transactionType;
	
	@Param(value=TRANSACTION_TIME,   required=true,   maxlength=0,	desc="交易时间" )
	private Date transactionTime;
	
	@Param(value=CREATE_TIME,   required=false,   maxlength=0,	desc="创建时间" )
	private Date createTime;
	
	@Param(value=REMARKS,   required=false,   maxlength=400,	desc="说明" )
	private String remarks;

	@Param(value=TRANSACTION_ID,   required=true,   maxlength=0,	desc="ID")
	private Long transactionId;
	
	public Long getFlowId() {
		return this.flowId;
	}
	
	public void setFlowId(Long flowId) {
		this.flowId = flowId;
	}
	
	public Long getUserId() {
		return this.userId;
	}
	
	public void setUserId(Long userId) {
		this.userId = userId;
	}
	
	public Long getAccountId() {
		return this.accountId;
	}
	
	public void setAccountId(Long accountId) {
		this.accountId = accountId;
	}
	
	public Double getAmount() {
		return this.amount;
	}
	
	public void setAmount(Double amount) {
		this.amount = amount;
	}
	
	public Integer getTransactionType() {
		return this.transactionType;
	}
	
	public void setTransactionType(Integer transactionType) {
		this.transactionType = transactionType;
	}
	
	public Date getTransactionTime() {
		return this.transactionTime;
	}
	
	public void setTransactionTime(Date transactionTime) {
		this.transactionTime = transactionTime;
	}
	
	public String getRemarks() {
		return remarks;
	}

	public void setRemarks(String remarks) {
		this.remarks = remarks;
	}

	public Long getTransactionId() {
		return transactionId;
	}

	public void setTransactionId(Long transactionId) {
		this.transactionId = transactionId;
	}

	public Date getCreateTime() {
		return this.createTime;
	}
	
	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}
	

}